package cn.wolfcode.car.business.service;

import cn.wolfcode.car.business.domain.CarPackageAudit;
import cn.wolfcode.car.business.domain.HistoricComment;
import cn.wolfcode.car.business.query.CarPackageAuditQuery;
import cn.wolfcode.car.common.base.page.TablePageInfo;

import java.io.InputStream;

public interface ICarPackageAuditService {
    /**
     * 分页
     * @param qo
     * @return
     */
    TablePageInfo<CarPackageAudit> query(CarPackageAuditQuery qo);

    /**
     *  新增
     * @param carPackageAudit
     */
    void save(CarPackageAudit carPackageAudit);

    /**
     * 批量删除
     * @param ids
     */
    void deleteBatch(String ids);

    /**
     * 编辑反显
     * @param id
     * @return
     */
    CarPackageAudit get(Long id);

    /**
     * 编辑
     * @param carPackageAudit
     */
    void update(CarPackageAudit carPackageAudit);

    /**
     * 进度查看
     * @param id
     * @return
     */
    InputStream processImg(Long id);

    /**
     * 撤销申请
     * @param id
     */
    void cancelApply(Long id);

    /**
     *  我的代办 分页数据查询
     * @param qo
     * @return
     */
    TablePageInfo<CarPackageAudit> todoQuery(CarPackageAuditQuery qo);

    /**
     * 审批功能
     * @param id
     * @param auditStatus
     * @param info
     */
    void audit(Long id, String auditStatus, String info);

    /**
     *查看审批历史
     * @param instanceId
     * @return
     */
    TablePageInfo<HistoricComment> listHistory(String instanceId);

    /**
     * 我的已办列表
     * @param qo
     * @return
     */
    TablePageInfo<CarPackageAudit> doneQuery(CarPackageAuditQuery qo);
}
